昨天我們介紹了如何利用 AI 建立 Spring Boot 的三層式架構。然而,在實際讓 AI 撰寫 Spring Boot 後端程式碼時,如果提示詞(Prompt)給得太隨意,很容易產生安全性漏洞、過時的 API 寫法,或是違反物件導向與 Spring 核心設計原則的程式碼。
今天我們就來整理在撰寫 Spring Boot API 與業務邏輯時,下達 Prompt 必須牢記的四大注意事項與實務眉角!
Spring Boot 2 與 Spring Boot 3(以及 Java 8 與 Java 17/21)在語法與套件依賴上有不小的差異(例如:javax.* 遷移至 jakarta.*)。若未指定版本,AI 經常會混用舊版的套件,導致專案編譯失敗。
jakarta.persistence.*。」為了保持後端專案的乾淨度,必須限制 AI 產出的程式碼職責。同時,要求 AI 搭配 Lombok 註解(如 @RequiredArgsConstructor)來進行依賴注入(Dependency Injection),避免產生冗長的 Constructor 程式碼。
@Autowired 欄位注入(Field Injection)。@RequiredArgsConstructor 加 private final 欄位,勿使用 @Autowired。」後端 API 若直接回傳原始 Entity,不僅容易暴露敏感資料,還會在發生錯誤時傳回雜亂的 Stack Trace。下指令時應要求 AI 使用統一的包裝類別(如 ResponseEntity 或自訂的 ApiResponse<T>),並加上基本的防呆驗證。
💡 實戰 Prompt 範例:
「請幫我撰寫
UserService.java中的『更新使用者資料』方法。
規範需求:
- 輸入參數需進行防呆檢查(如檢查使用者是否存在)。
- 若使用者不存在,請拋出自訂的
ResourceNotFoundException,而不是直接回傳null。- API 回傳值請統一使用
ResponseEntity<ApiResponse<UserDto>>進行包裝。」
AI 在生成 JPA 查詢或 SQL 時,有時會寫出容易引發 N+1 查詢問題 的程式碼,或忘記對敏感欄位(如密碼)進行加密處理。
PasswordEncoder(如 BCrypt)進行加密儲存。」JOIN FETCH 以避免 N+1 效能問題。」掌握了這四大針對 Spring Boot 的 Prompt 下指令心法,就能確保 AI 生成的後端代碼既符合企業級規範,又具備良好的安全性與維護性!